home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 2.5) import unittest import os import os.path as os import glob from copy import copy import httpclient import eventloop from test.framework import DownloaderTestCase ADMIN_ONLY_PAGES = [ 'admin.php', 'channels.php', 'create_channel.php', 'delete.php', 'donation.php', 'donations.php', 'edit_channel.php', 'edit_videos.php', 'generate_htaccess.php', 'pause.php', 'start.php', 'stop.php', 'users.php', 'user_edit.php', 'settings.php'] class BroadcastMachineTest(DownloaderTestCase): def setUp(self): self.assert_(os.environ.has_key('BMACHINE_SERVER')) self.assert_(os.environ.has_key('BMACHINE_SERVER_LOCATION')) self.assert_(os.environ['BMACHINE_SERVER_LOCATION'].startswith('/')) self.assert_(os.environ.has_key('BMACHINE_SERVER_URL')) self.assert_(os.environ.has_key('BMACHINE_LOCATION')) self.loc = os.environ['BMACHINE_LOCATION'] self.server = os.environ['BMACHINE_SERVER'] self.server_loc = os.environ['BMACHINE_SERVER_LOCATION'] self.url = os.environ['BMACHINE_SERVER_URL'] DownloaderTestCase.setUp(self) self.dlError = False self.fixedPermissions = False def test(self): launchArgs = [ '-C', '-q', '-r'] launchArgs.extend(glob.glob(os.path.join(self.loc, '*'))) launchArgs.append('%s:%s' % (self.server, self.server_loc)) self.assertEqual(os.spawnvp(os.P_WAIT, 'scp', launchArgs), 0) httpclient.grabURL(self.url, self.setupCallback, self.errorCallback) self.runEventLoop() def fixPermissions(self): self.assert_(not (self.fixedPermissions)) self.fixedPermissions = True for d in [ 'torrents', 'data', 'publish', 'thumbnails', 'text']: os.spawnlp(os.P_WAIT, 'ssh', '-C', self.server, 'mkdir %s 2>&1' % os.path.join(self.server_loc, d)) os.spawnlp(os.P_WAIT, 'ssh', '-C', self.server, 'chmod 777 %s 2>&1' % os.path.join(self.server_loc, d)) def setupCallback(self, info): self.info = info self.assertEqual(info['status'], 200) if info['body'].find('Before you can use Broadcast Machine, we need to create a few directories. There are several ways to do this listed below.') != -1: self.fixPermissions() httpclient.grabURL(self.url, self.setupCallback, self.errorCallback) else: self.assertNotEqual(info['body'].find('This looks like your first time using Broadcast Machine.'), -1) self.assertNotEqual(info['body'].find('You should create a new user account before continuing.'), -1) httpclient.grabURL(info['redirected-url'], self.createAccountCallback, self.errorCallback, method = 'POST', postVariables = { 'do_login': '1', 'email': 'nassar@pculture.org', 'username': 'admin', 'pass1': 'PCF is cool', 'pass2': 'PCF is cool' }) def makeBMCookies(self): return { 'PHPSESSID': self.PHPSESSID, 'bm_userhash': self.bm_userhash, 'bm_username': self.bm_username } def storeBMCookie(self, cookies): if cookies.has_key('bm_userhash'): self.bm_userhash = cookies['bm_userhash'] if cookies.has_key('bm_username'): self.bm_username = cookies['bm_username'] if cookies.has_key('PHPSESSID'): self.PHPSESSID = cookies['PHPSESSID'] def createAccountCallback(self, info): self.assertNotEqual(info['body'].find('The account admin was added successfully.'), -1) self.assertEqual(info['cookies']['bm_username']['Value'], 'admin') self.storeBMCookie(info['cookies']) self.loadNoCookies(None, ADMIN_ONLY_PAGES) def loadNoCookies(self, info, urllist): if info is not None: self.assert_(info['redirected-url'].endswith('/index.php')) if len(urllist) > 0: nexturl = self.url + urllist.pop() None((httpclient.grabURL, nexturl), (lambda info: self.loadNoCookies(info, urllist)), self.errorCallback) else: httpclient.grabURL(self.url + 'create_channel.php', self.createChannelLoad, self.errorCallback, method = 'POST', cookies = self.makeBMCookies(), postVariables = { 'Name': 'Test Channel 1', 'Description': 'This is a test channel', 'Publisher': 'Democracy/Broadcast Machine tester', 'Icon': 'http://images.slashdot.org/topics/topiccommunications.gif', 'post_use_auto': '1', 'Options[Thumbnail]': '1', 'Options[Title]': '1', 'Options[Creator]': '1', 'Options[Description]': '1', 'Options[Length]': '1', 'Options[Filesize]': '1', 'Options[Torrent]': '1', 'Options[URL]': '1', 'Options[Keywords]': '1', 'SubscribeOptions[0]': '1', 'SubscribeOptions[1]': '2', 'SubscribeOptions[2]': '4' }) def createChannelLoad(self, info): self.assert_(info['redirected-url'].endswith('/channels.php')) self.assertNotEqual(info['body'].find('Test Channel 1'), -1) self.assertNotEqual(info['body'].find('Democracy/Broadcast Machine tester'), -1) self.assertNotEqual(info['body'].find('http://images.slashdot.org/topics/topiccommunications.gif'), -1) self.storeBMCookie(info['cookies']) eventloop.quit() def errorCallback(self, error): print 'Broadcast Machine URL load died with %s' % error self.dlError = True self.stopEventLoop()